Two central processing units (CPUs) have been used to control an internal combustion engine in a vehicle, one being for an injection control and an ignition control as a main CPU, and the other being for a throttle control as a sub-CPU. The main CPU monitors the throttle control operation of the sub-CPU, and performs a fail-safe operation when a failure occurs in the throttle control. It has been proposed to perform all of those controls by one CPU, because CPUs have become more capable in respect of processing speed and the like. However, another CPU is used as a sub-CPU to monitor the operation of the main CPU which performs the injection, ignition and throttle controls.
If the sub-CPU detects a failure in the throttle control operation for instance, the sub-CPU instructs the main CPU to perform a fail-safe operation. This fail-safe operation may include maintaining fuel injection and ignition for a reduced number of cylinders of an engine for a limp-home travel of a vehicle. However, it is not certain whether the main CPU, which is involved in the throttle control, is still capable of performing the fail-safe processing properly. Although the sub-CPU may be constructed to reset the main CPU, it is not certain whether the main CPU can perform the fail-safe operation after resetting.